package com.piggy.settlement.sdk.vo.batchimportform;

import com.piggy.settlement.sdk.annotation.PiggySig;
import lombok.*;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.List;

/**
 * @author ：daxia
 * @description：批量上报
 * @modified By：
 * @version: 1.0$
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@XmlRootElement(name = "result")
@XmlAccessorType(XmlAccessType.FIELD)
public class PiggyImportFormVo {

    @XmlElement(name = "notifyUrl", required = true)
    private String notifyUrl;
    @PiggySig
    @XmlElement(name = "appKey", required = true)
    private String appKey;
    @PiggySig
    @XmlElement(name = "subsidiaryId", required = true)
    private String subsidiaryId;
    @PiggySig
    @XmlElement(name = "month", required = true)
    private String month;
    @PiggySig
    @XmlElement(name = "outerBatchNo", required = true)
    private String outerBatchNo;
    @PiggySig
    @XmlElement(name = "totalCts", required = true)
    private String totalCts;
    @PiggySig
    @XmlElement(name = "totalAmt", required = true)
    private String totalAmt;

    @Singular(value = "addForm")
    @XmlElement(name = "list", required = true)
    private List<PiggyImportFormList> list;

    @Data
    @Builder
    @AllArgsConstructor
    @NoArgsConstructor
    @XmlRootElement(name = "list")
    @XmlAccessorType(XmlAccessType.FIELD)
    public static class PiggyImportFormList {
        @XmlElement(name = "outerTradeNo", required = true)
        private String outerTradeNo;
        @XmlElement(name = "empNum")
        private String empNum;
        @XmlElement(name = "empName", required = true)
        private String empName;
        @XmlElement(name = "empPhone", required = true)
        private String empPhone;
        @XmlElement(name = "licenseType", required = true)
        private String licenseType;
        @XmlElement(name = "licenseId", required = true)
        private String licenseId;
        @XmlElement(name = "settleType", required = true)
        private String settleType;
        @XmlElement(name = "payAccount", required = true)
        private String payAccount;
        @XmlElement(name = "bankName")
        private String bankName;
        @XmlElement(name = "positionName", required = true)
        private String positionName;
        @XmlElement(name = "grossPay")
        private String grossPay;
        @XmlElement(name = "actualPay")
        private String actualPay;
    }

}
